package com.nbjtjc.safe.model.danger;

import cn.afterturn.easypoi.entity.ImageEntity;
import com.nbjtjc.common.validator.group.UpdateGroup;
import com.nbjtjc.safe.bean.ExcelImage;
import com.nbjtjc.safe.bean.Page;
import com.nbjtjc.safe.model.safe.SafeDangerInspectTaskRecord;
import com.nbjtjc.safe.model.sys.SysFile;
import com.nbjtjc.safe.model.sys.SysUser;
import org.hibernate.validator.constraints.NotBlank;
import org.omg.CORBA.INTERNAL;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import javax.print.DocFlavor;
import javax.validation.constraints.NotNull;

@Table(name = "danger_inspect_list_public")
public class DangerInspectListPublic extends Page{
    /**
     * 检查项目
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @NotNull(message = "删除或者更新是不能为空",groups = {UpdateGroup.class})
    private Integer id;

    /**
     * 检查项目
     */
    @Column(name = "inspect_project")
    private String inspectProject;

    /**
     * 检查内容
     */
    @Column(name = "inspect_content")
    private String inspectContent;

    /**
     * 排序的序号
     */
    private Integer num;

    /**
     * 创建时间
     */
    @Column(name = "create_time")
    private Date createTime;

    /**
     * 关联的发布的检查表的id
     */
    @Column(name = "inspect_public_id")
    private Integer inspectPublicId;

    /**
     * 检查结果记录
     */
    @Column(name = "inspect_result")
    private String inspectResult;

    /**
     * 隐患级别
     */
    @Column(name = "hidden_danger_level")
    private String hiddenDangerLevel;

    /**
     * 是否需要整改,0表示不需要整改，1表示需要
     */
    @Column(name = "need_change")
    private Integer needChange;

    /**
     * 整改时间
     */
    @Column(name = "change_time")
    private Date changeTime;

    /**
     * 整改期限
     */
    @Column(name = "deadline")
    private Date deadline;
    /**
     * 整改说明
     */
    @Column(name = "change_explain")
    private String changeExplain;

    /**
     * 该条隐患记录的状态
     */
    private Integer status;

    @Column(name="danger_type")
    private String dangerType;

    @Column(name = "change_require")
    private String changeRequire;

    @Column(name = "apply_user_id")
    private Integer applyUserId;

    @Column(name = "supervise_user_id")
    private Integer superviseUserId;

    /**
     * 督办整改完成时间
     */
    @Column(name = "supervise_reform_time")
    private Date superviseReformDate;
    @Column(name = "supervise_reform_explain")
    private String superviseReformExplain;
    /**
     * 督办期限时间
     */
    @Column(name = "supervise_finish_date")
    private Date superviseFinishDate;

    /**
     * 修改意见
     */
    private String suggestion;

    /**
     * 对应的检查依据id
     */
    @Column(name = "basis_id")
    private Integer basisId;

    @Column(name = "inspect_project_order")
    private Integer inspectProjectOrder;

    /**
     * 整改措施
     */
    @Column(name = "reform_action")
    private String reformAction;

    /**
     * 是否需要资金，0不需要，1需要
     */
    private Integer funding;
    /**
     * 0符合1不符合2不适用
     */
    @Column(name = "inspect_result_code")
    private Integer inspectResultCode;

    @Column(name="danger_explain")
    private String dangerExplain;

    private String remark;

    @Column(name="danger_position")
    private String dangerPosition;

    @Column(name = "danger_position_id")
    private Integer dangerPositionId;

    @Column(name = "action_user_id")
    private Integer actionUserId;

    @Column(name="action_username")
    private String applyUserName;

    @Column(name = "task_id")
    private Integer taskId;
    @Column(name="task_name")
    private String taskName;
    /**
     * 0表示为检查，1表示已经检查来
     */
    private Integer inspected;
    /**
     * 查询条件，发布的检查表的ids
     */
    @Transient
    private List<Integer> dangerInspectPublicIds=new ArrayList<>();
    @Transient
    private String actionUsername;
    @Transient
    private List<SysFile> dangerPics=new ArrayList<>();
    @Transient
    private List<SysFile> changePics=new ArrayList<>();
    @Transient
    private List<SysFile> supervisePics=new ArrayList<>();
    @Transient
    private ImageEntity image=new ImageEntity();

    @Transient
    private Boolean changeOverTime=false;

    @Transient
    private Boolean superviseChangeOverTime=false;

    @Transient
    private String deptName;

    /**
     * 是否获取下级公司的隐患
     */
    @Transient
    private Boolean downward=false;

    /**
     * 整改时间， true表示条件是整改时间时空，查找未整改的
     *
     */
    @Transient
    private Boolean changeTimeIsNull=false;
    @Transient
    private List<Integer> inspectPublicIds=new ArrayList<>();

    @Transient
    private List<Integer> selectUserIds=new ArrayList<>();
    @Transient
    private List<SysUser> selectUsers=new ArrayList<>();

    @Transient
    private SafeDangerInspectTaskRecord taskRecord=new SafeDangerInspectTaskRecord();

    public Integer getActionUserId() {
        return actionUserId;
    }

    public String getTaskName() {
        return taskName;
    }

    public void setTaskName(String taskName) {
        this.taskName = taskName;
    }

    public void setActionUserId(Integer actionUserId) {
        this.actionUserId = actionUserId;
    }

    public String getActionUsername() {
        return actionUsername;
    }

    public void setActionUsername(String actionUsername) {
        this.actionUsername = actionUsername;
    }

    public Integer getInspected() {
        return inspected;
    }

    public void setInspected(Integer inspected) {
        this.inspected = inspected;
    }

    public List<SysUser> getSelectUsers() {
        return selectUsers;
    }

    public void setSelectUsers(List<SysUser> selectUsers) {
        this.selectUsers = selectUsers;
    }

    public List<Integer> getSelectUserIds() {
        return selectUserIds;
    }

    public void setSelectUserIds(List<Integer> selectUserIds) {
        this.selectUserIds = selectUserIds;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getDangerExplain() {
        return dangerExplain;
    }

    public void setDangerExplain(String dangerExplain) {
        this.dangerExplain = dangerExplain;
    }


    public String getDangerPosition() {
        return dangerPosition;
    }

    public void setDangerPosition(String dangerPosition) {
        this.dangerPosition = dangerPosition;
    }

    public Integer getDangerPositionId() {
        return dangerPositionId;
    }

    public void setDangerPositionId(Integer dangerPositionId) {
        this.dangerPositionId = dangerPositionId;
    }

    public SafeDangerInspectTaskRecord getTaskRecord() {
        return taskRecord;
    }

    public void setTaskRecord(SafeDangerInspectTaskRecord taskRecord) {
        this.taskRecord = taskRecord;
    }

    public Integer getInspectResultCode() {
        return inspectResultCode;
    }

    public void setInspectResultCode(Integer inspectResultCode) {
        this.inspectResultCode = inspectResultCode;
    }

    public Integer getTaskId() {
        return taskId;
    }

    public void setTaskId(Integer taskId) {
        this.taskId = taskId;
    }

    public String getSuggestion() {
        return suggestion;
    }

    public void setSuggestion(String suggestion) {
        this.suggestion = suggestion;
    }

    public Integer getBasisId() {
        return basisId;
    }

    public void setBasisId(Integer basisId) {
        this.basisId = basisId;
    }

    public Integer getInspectProjectOrder() {
        return inspectProjectOrder;
    }

    public void setInspectProjectOrder(Integer inspectProjectOrder) {
        this.inspectProjectOrder = inspectProjectOrder;
    }

    public String getReformAction() {
        return reformAction;
    }

    public void setReformAction(String reformAction) {
        this.reformAction = reformAction;
    }

    public Integer getFunding() {
        return funding;
    }

    public void setFunding(Integer funding) {
        this.funding = funding;
    }

    public Boolean getChangeTimeIsNull() {
        return changeTimeIsNull;
    }

    public void setChangeTimeIsNull(Boolean changeTimeIsNull) {
        this.changeTimeIsNull = changeTimeIsNull;
    }

    public List<Integer> getInspectPublicIds() {
        return inspectPublicIds;
    }

    public void setInspectPublicIds(List<Integer> inspectPublicIds) {
        this.inspectPublicIds = inspectPublicIds;
    }

    public Boolean getDownward() {
        return downward;
    }

    public void setDownward(Boolean downward) {
        this.downward = downward;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public Boolean getSuperviseChangeOverTime() {
        return superviseChangeOverTime;
    }

    public void setSuperviseChangeOverTime(Boolean superviseChangeOverTime) {
        this.superviseChangeOverTime = superviseChangeOverTime;
    }

    public Boolean getChangeOverTime() {
        return changeOverTime;
    }

    public void setChangeOverTime(Boolean changeOverTime) {
        this.changeOverTime = changeOverTime;
    }

    public Date getSuperviseFinishDate() {
        return superviseFinishDate;
    }

    public void setSuperviseFinishDate(Date superviseFinishDate) {
        this.superviseFinishDate = superviseFinishDate;
    }

    public String getSuperviseReformExplain() {
        return superviseReformExplain;
    }

    public void setSuperviseReformExplain(String superviseReformExplain) {
        this.superviseReformExplain = superviseReformExplain;
    }

    public Date getSuperviseReformDate() {
        return superviseReformDate;
    }

    public void setSuperviseReformDate(Date superviseReformDate) {
        this.superviseReformDate = superviseReformDate;
    }

    public List<SysFile> getSupervisePics() {
        return supervisePics;
    }

    public void setSupervisePics(List<SysFile> supervisePics) {
        this.supervisePics = supervisePics;
    }

    public Integer getSuperviseUserId() {
        return superviseUserId;
    }

    public void setSuperviseUserId(Integer superviseUserId) {
        this.superviseUserId = superviseUserId;
    }

    public String getApplyUserName() {
        return applyUserName;
    }

    public void setApplyUserName(String applyUserName) {
        this.applyUserName = applyUserName;
    }

    public Integer getApplyUserId() {
        return applyUserId;
    }

    public void setApplyUserId(Integer applyUserId) {
        this.applyUserId = applyUserId;
    }

    public String getDangerType() {
        return dangerType;
    }

    public void setDangerType(String dangerType) {
        this.dangerType = dangerType;
    }

    public String getChangeRequire() {
        return changeRequire;
    }

    public void setChangeRequire(String changeRequire) {
        this.changeRequire = changeRequire;
    }

    public ImageEntity getImage() {
        return image;
    }

    public void setImage(ImageEntity image) {
        this.image = image;
    }

    public List<Integer> getDangerInspectPublicIds() {
        return dangerInspectPublicIds;
    }


    public List<SysFile> getDangerPics() {
        return dangerPics;
    }

    public void setDangerPics(List<SysFile> dangerPics) {
        this.dangerPics = dangerPics;
    }

    public List<SysFile> getChangePics() {
        return changePics;
    }

    public void setChangePics(List<SysFile> changePics) {
        this.changePics = changePics;
    }

    public void setDangerInspectPublicIds(List<Integer> dangerInspectPublicIds) {
        this.dangerInspectPublicIds = dangerInspectPublicIds;
    }

    public Date getDeadline() {
        return deadline;
    }

    public void setDeadline(Date deadline) {
        this.deadline = deadline;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取检查项目
     *
     * @return id - 检查项目
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置检查项目
     *
     * @param id 检查项目
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取检查项目
     *
     * @return inspect_project - 检查项目
     */
    public String getInspectProject() {
        return inspectProject;
    }

    /**
     * 设置检查项目
     *
     * @param inspectProject 检查项目
     */
    public void setInspectProject(String inspectProject) {
        this.inspectProject = inspectProject;
    }

    /**
     * 获取检查内容
     *
     * @return inspect_content - 检查内容
     */
    public String getInspectContent() {
        return inspectContent;
    }

    /**
     * 设置检查内容
     *
     * @param inspectContent 检查内容
     */
    public void setInspectContent(String inspectContent) {
        this.inspectContent = inspectContent;
    }

    /**
     * 获取排序的序号
     *
     * @return num - 排序的序号
     */
    public Integer getNum() {
        return num;
    }

    /**
     * 设置排序的序号
     *
     * @param num 排序的序号
     */
    public void setNum(Integer num) {
        this.num = num;
    }

    /**
     * 获取创建时间
     *
     * @return create_time - 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取关联的发布的检查表的id
     *
     * @return inspect_public_id - 关联的发布的检查表的id
     */
    public Integer getInspectPublicId() {
        return inspectPublicId;
    }

    /**
     * 设置关联的发布的检查表的id
     *
     * @param inspectPublicId 关联的发布的检查表的id
     */
    public void setInspectPublicId(Integer inspectPublicId) {
        this.inspectPublicId = inspectPublicId;
    }

    /**
     * 获取检查结果记录
     *
     * @return inspect_result - 检查结果记录
     */
    public String getInspectResult() {
        return inspectResult;
    }

    /**
     * 设置检查结果记录
     *
     * @param inspectResult 检查结果记录
     */
    public void setInspectResult(String inspectResult) {
        this.inspectResult = inspectResult;
    }

    /**
     * 获取隐患级别
     *
     * @return hidden_danger_level - 隐患级别
     */
    public String getHiddenDangerLevel() {
        return hiddenDangerLevel;
    }

    /**
     * 设置隐患级别
     *
     * @param hiddenDangerLevel 隐患级别
     */
    public void setHiddenDangerLevel(String hiddenDangerLevel) {
        this.hiddenDangerLevel = hiddenDangerLevel;
    }

    /**
     * 获取是否需要整改,0表示不需要整改，1表示需要
     *
     * @return need_change - 是否需要整改,0表示不需要整改，1表示需要
     */
    public Integer getNeedChange() {
        return needChange;
    }

    /**
     * 设置是否需要整改,0表示不需要整改，1表示需要
     *
     * @param needChange 是否需要整改,0表示不需要整改，1表示需要
     */
    public void setNeedChange(Integer needChange) {
        this.needChange = needChange;
    }

    /**
     * 获取整改时间
     *
     * @return change_time - 整改时间
     */
    public Date getChangeTime() {
        return changeTime;
    }

    /**
     * 设置整改时间
     *
     * @param changeTime 整改时间
     */
    public void setChangeTime(Date changeTime) {
        this.changeTime = changeTime;
    }

    /**
     * 获取整改说明
     *
     * @return change_explain - 整改说明
     */
    public String getChangeExplain() {
        return changeExplain;
    }

    /**
     * 设置整改说明
     *
     * @param changeExplain 整改说明
     */
    public void setChangeExplain(String changeExplain) {
        this.changeExplain = changeExplain;
    }
}